package com.emm.yixun.config;

import com.emm.yixun.common.app.CustomerCommDto;
import com.emm.yixun.common.utils.BeanUtil;
import org.apache.commons.lang.StringUtils;

/**
 * Created by Administrator on 2017/8/12.
 */
public class CustomerUtil {
    /**
     * 验证客户信息意向登记
     * 1.A+，
     * 2.A
     * 3.B
     * 4.C
     * 5.D
     * 高等级包含低等级验证
     * @param reqDto
     * @return
     */
    public static CustomerCommDto checkIntentionLevel(Object dto){
        if(dto == null){
            return null;
        }

        CustomerCommDto reqDto = new CustomerCommDto();
        BeanUtil.convert2T(reqDto,dto);

        if(StringUtils.isEmpty(reqDto.getIntentionLevel()) ){
            return checkIntention(reqDto);
        }else{
            if( "3".equals(reqDto.getIntentionLevel() )||  "4".equals(reqDto.getIntentionLevel() ) ||  "5".equals(reqDto.getIntentionLevel() )){
                if(checkB(reqDto)){
                    reqDto.setIsIntentionIntact("1");//1:满足意向等级,0:不满足
                }else{
                    reqDto.setIsIntentionIntact("0");
                }
            }
            if("1".equals(reqDto.getIntentionLevel())){
                if(checkAj(reqDto)){
                    reqDto.setIsIntentionIntact("1");
                }else{
                    reqDto.setIsIntentionIntact("0");
                }
            }
            if("2".equals(reqDto.getIntentionLevel())){
                if(checkA(reqDto)){
                    reqDto.setIsIntentionIntact("1");
                }else{
                    reqDto.setIsIntentionIntact("0");
                }
            }
        }
        return reqDto;
    }

    //自动判断意向等级
    private static CustomerCommDto checkIntention(CustomerCommDto reqDto){
        if(checkAj(reqDto)){
            reqDto.setIntentionLevel("1");
            reqDto.setIsIntentionIntact("1");
            return reqDto;
        }else if(checkA(reqDto)){
            reqDto.setIntentionLevel("2");
            reqDto.setIsIntentionIntact("1");
            return reqDto;
        }else if(checkB(reqDto)){
            reqDto.setIntentionLevel("5");
            reqDto.setIsIntentionIntact("1");
            return reqDto;
        }
        //默认为5
        reqDto.setIntentionLevel("5");
        reqDto.setIsIntentionIntact("0");
        return reqDto;
    }
    //1.项目名称，2.客户名称，3客户性别，4联系电话，5客户状态，6获知途径，7客户性质，8接触方式，9接触时间，10沟通方式
    private static boolean checkD(CustomerCommDto reqDto){
        if(reqDto.getProjectId() == null && StringUtils.isEmpty(reqDto.getProjectCode())){//项目名称
            return false;
        }
        if(StringUtils.isEmpty(reqDto.getCustomerName())){//客户名称
            return false;
        }
        if(StringUtils.isEmpty(reqDto.getCustomerSex())){//客户性别
            return false;
        }
        if(StringUtils.isEmpty(reqDto.getCustomerPhone())){//联系电话
            return false;
        }
        if(StringUtils.isEmpty(reqDto.getCustomerStatus())){//客户状态
            return false;
        }
        if(StringUtils.isEmpty(reqDto.getInformedWay())){//获知途径
            return false;
        }
        if(StringUtils.isEmpty(reqDto.getCustomerOrigin())){//客户性质
            return false;
        }
        if(StringUtils.isEmpty(reqDto.getFtContactWay())){//接触方式
            return false;
        }
        if(reqDto.getFtContactTime() == null){//接触时间
            return false;
        }
        if(StringUtils.isEmpty(reqDto.getFtContactContent())){//沟通内容
            return false;
        }
        return true;
    }
    private static boolean checkC(CustomerCommDto reqDto){
        if(checkD(reqDto)){
            return true;
        }
        return false;
    }
    private static boolean checkB(CustomerCommDto reqDto){
        if(checkC(reqDto)){
            return true;
        }
        return false;
    }
    private static boolean checkA(CustomerCommDto reqDto){
        if(checkB(reqDto)){
            if(StringUtils.isEmpty(reqDto.getRqTheirMotives())){
                return  false;
            }
            if(StringUtils.isEmpty(reqDto.getRqDemandArea())){
                return false;
            }
            if(StringUtils.isEmpty(reqDto.getRqServicesId())){
                return false;
            }
//            if(StringUtils.isEmpty(reqDto.getRqLifeSupport())){
//                return false;
//            }
            if(StringUtils.isEmpty(reqDto.getRqPaymentMethod())){
                return false;
            }
            if((reqDto.getPeResidenceProvinceId()) == null){
                return false;
            }
            if(reqDto.getPeResidenceCityId() == null){
                return false;
            }
            if(reqDto.getPeResidenceAreaId() == null){
                return false;
            }
            if(StringUtils.isEmpty(reqDto.getRqFocusId())){
                return false;
            }
            if(reqDto.getPeWorkaroundProvinceId() == null){
                return false;
            }
            if(reqDto.getPeWorkaroundCityId() == null){
                return false;
            }
            if(reqDto.getPeWorkaroundAreaId() == null){
                return false;
            }
//            if(reqDto.getPremisesList() == null || reqDto.getPremisesList().size() == 0){
//                return false;
//            }
            if(reqDto.getRoomList() == null || reqDto.getRoomList().size() == 0){
                return false;
            }
            if(StringUtils.isEmpty(reqDto.getIndustry())){
                return false;
            }

            return true;
        }
        return false;
    }
    private static boolean checkAj(CustomerCommDto reqDto){
        if(checkB(reqDto) && checkA(reqDto)){
            if(StringUtils.isEmpty(reqDto.getPeContactAddress())){
                return false;
            }
            if(StringUtils.isEmpty(reqDto.getPeDocumentType())){
                return false;
            }
            if(StringUtils.isEmpty(reqDto.getPeDocumentNumber())){
                return false;
            }
            if(StringUtils.isEmpty(reqDto.getPeBirth())){
                return false;
            }
            if(StringUtils.isEmpty(reqDto.getPeDomicilePlace())){
                return false;
            }
            if(StringUtils.isEmpty(reqDto.getDailyInformation())){
                return false;
            }
            if(StringUtils.isEmpty(reqDto.getPeHobbyId())){
                return false;
            }
            if(StringUtils.isEmpty(reqDto.getPeActivityType())){
                return false;
            }
            return true;
        }
        return false;
    }
}
